Pagination হল একটি প্রক্রিয়া যার মাধ্যমে আপনি বড় ডেটাবেস থেকে নির্দিষ্ট পরিমাণ ডেটা একসাথে দেখান এবং বাকি ডেটা অন্য পৃষ্ঠায় ভাগ করে প্রদর্শন করেন। এটি মূলত ওয়েব অ্যাপ্লিকেশন বা সাইটের পারফরম্যান্স বাড়ানোর জন্য ব্যবহৃত হয়, বিশেষ করে যখন ডেটা অনেক বড় হয়।
1. Pagination কেন প্রয়োজন?
যখন আপনার ডেটাবেসে হাজার হাজার রেকর্ড থাকে, তখন সবগুলো রেকর্ড এক পৃষ্ঠায় দেখালে ব্যবহারকারীর জন্য তা পড়া বা নেভিগেট করা কঠিন হয়ে পড়ে। Pagination ব্যবহার করে আপনি ডেটাকে পৃষ্ঠায় ভাগ করে, প্রতিটি পৃষ্ঠায় একটি নির্দিষ্ট পরিমাণ রেকর্ড দেখাতে পারেন।
2. Pagination তৈরির ধাপসমূহ
2.1 ডেটাবেস থেকে রেকর্ড ফেচ করা
প্রথমে, আমাদের ডেটাবেস থেকে নির্দিষ্ট পরিমাণ রেকর্ড তুলে আনতে হবে। ধরুন, প্রতি পৃষ্ঠায় ১০টি রেকর্ড দেখাতে হবে।
2.2 পেজ নম্বর এবং লিঙ্ক তৈরি
Pagination লিঙ্ক তৈরি করতে হবে যাতে ব্যবহারকারী বিভিন্ন পৃষ্ঠায় নেভিগেট করতে পারে। প্রতিটি পেজ লিঙ্ক ক্লিক করলে তা নতুন পৃষ্ঠায় রিডাইরেক্ট করবে এবং সেই পৃষ্ঠার জন্য রেকর্ড দেখাবে।
3. প্রাথমিক কোড উদাহরণ
3.1 ডেটাবেস সংযোগ স্থাপন এবং রেকর্ড ফেচ করা
<?php
// MySQL সার্ভারে সংযোগ স্থাপন
$conn = new mysqli("localhost", "root", "", "testdb");
// চেক করা যদি সংযোগ সফল হয়
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// প্রতি পৃষ্ঠায় কতটি রেকর্ড দেখানো হবে তা নির্ধারণ
$records_per_page = 10;
// বর্তমান পৃষ্ঠার পেজ নম্বর
$page = isset($_GET['page']) ? $_GET['page'] : 1;
// SQL কোয়েরি (ডেটা ফেচ করা)
$start_from = ($page - 1) * $records_per_page;
$sql = "SELECT * FROM orders LIMIT $start_from, $records_per_page";
$result = $conn->query($sql);
?>
<table>
<tr>
<th>Order ID</th>
<th>Customer ID</th>
<th>Amount</th>
</tr>
<?php
// রেকর্ডগুলো দেখানো
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row['order_id'] . "</td><td>" . $row['customer_id'] . "</td><td>" . $row['amount'] . "</td></tr>";
}
} else {
echo "<tr><td colspan='3'>No records found</td></tr>";
}
?>
</table>
<?php
// Pagination লিঙ্ক তৈরি
$sql = "SELECT COUNT(order_id) AS total FROM orders";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
$total_pages = ceil($total_records / $records_per_page);
// Pagination লিঙ্ক দেখানো
echo "<div class='pagination'>";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=" . $i . "'>" . $i . "</a> ";
}
echo "</div>";
$conn->close();
?>
4. কোডের বিশ্লেষণ
4.1 ডেটাবেস থেকে রেকর্ড ফেচ করা
$start_from = ($page - 1) * $records_per_page;
$sql = "SELECT * FROM orders LIMIT $start_from, $records_per_page";
LIMIT $start_from, $records_per_pageব্যবহার করে ডেটাবেস থেকে নির্দিষ্ট পরিমাণ রেকর্ড (যেমন ১০টি) ফেচ করা হয়।$start_fromহল পৃষ্ঠা নম্বর অনুসারে প্রথম রেকর্ডের অবস্থান।
4.2 Pagination লিঙ্ক তৈরি
$sql = "SELECT COUNT(order_id) AS total FROM orders";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
$total_pages = ceil($total_records / $records_per_page);
SELECT COUNT(order_id)টেবিলের মোট রেকর্ডের সংখ্যা গুনে বের করা হয়।ceil($total_records / $records_per_page)ব্যবহার করে মোট পৃষ্ঠার সংখ্যা নির্ধারণ করা হয়।
4.3 Pagination লিঙ্ক
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=" . $i . "'>" . $i . "</a> ";
}
- এই কোডটি বিভিন্ন পৃষ্ঠার জন্য লিঙ্ক তৈরি করে এবং ব্যবহারকারীর জন্য প্রতিটি পৃষ্ঠায় নেভিগেট করার সুযোগ দেয়।
5. Pagination লিঙ্কের স্টাইলিং
পৃষ্ঠাগুলির মধ্যে সুন্দরভাবে নেভিগেট করার জন্য CSS দিয়ে Pagination লিঙ্কগুলো স্টাইল করা যেতে পারে।
5.1 CSS উদাহরণ
<style>
.pagination {
text-align: center;
margin-top: 20px;
}
.pagination a {
margin: 0 5px;
padding: 10px 15px;
background-color: #f2f2f2;
text-decoration: none;
color: #333;
border-radius: 5px;
}
.pagination a:hover {
background-color: #ddd;
}
</style>
এই CSS কোডটি Pagination লিঙ্কগুলোকে সুন্দরভাবে দেখাবে এবং hover করার সময় তাদের রঙ পরিবর্তন করবে।
6. উন্নত Pagination লিঙ্ক
যদি পৃষ্ঠার সংখ্যা অনেক বেশি হয়, তবে আপনি "Previous" এবং "Next" বাটনও যোগ করতে পারেন।
6.1 Previous এবং Next বাটন
<div class="pagination">
<?php
if ($page > 1) {
echo "<a href='?page=" . ($page - 1) . "'>Previous</a>";
}
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=" . $i . "'>" . $i . "</a>";
}
if ($page < $total_pages) {
echo "<a href='?page=" . ($page + 1) . "'>Next</a>";
}
?>
</div>
এই কোডটি "Previous" এবং "Next" বাটন যোগ করবে, যা ব্যবহারকারীকে পৃষ্ঠাগুলির মধ্যে সহজে নেভিগেট করতে সাহায্য করবে।
সারাংশ
Pagination একটি গুরুত্বপূর্ণ প্রক্রিয়া যা বড় ডেটাবেসের ডেটাকে ছোট ছোট পৃষ্ঠায় ভাগ করে ব্যবহারকারীর জন্য সহজে দেখানোর ব্যবস্থা করে। PHP এবং MySQL এর মাধ্যমে Pagination লিঙ্ক তৈরি করা খুবই সহজ এবং এটি ওয়েব অ্যাপ্লিকেশনগুলোকে আরও ইউজার-ফ্রেন্ডলি এবং পারফরম্যান্স-বান্ধব করে তোলে।
Read more